{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-elasticsearch-core",
      "artifactVersion": "2021.24.3",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.elasticsearch.audit",
          "org.nuxeo.elasticsearch.automation",
          "org.nuxeo.elasticsearch.core",
          "org.nuxeo.elasticsearch.http.readonly",
          "org.nuxeo.elasticsearch.rest",
          "org.nuxeo.elasticsearch.seqgen",
          "org.nuxeo.elasticsearch.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.elasticsearch",
        "id": "grp:org.nuxeo.elasticsearch",
        "name": "org.nuxeo.elasticsearch",
        "parentIds": [],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "nuxeo-elasticsearch\n===================\n\n## About\n\nThis project aims at providing Nuxeo bundles to integrate\nElasticsearch with the Nuxeo Platform.\n\nThe idea is to index/query Nuxeo Documents to/from Elasticsearch.\n\n## Building\n\nTo build and run the tests, simply start the Maven build:\n\n    mvn clean install\n\n## Running tests\n\n### Using the embedded Elasticsearch\n\nWith the default `RestClient`:\n```bash\nmvn -nsu test\n# -Dnuxeo.test.elasticsearch.client=RestClient is set by default\n```\n\nOr with the `TransportClient`\n\n```bash\nmvn -nsu test -Dnuxeo.test.elasticsearch.client=TransportClient\n```\n\n### Using an external Elasticsearch\n\n1. Start an Elasticsearch using docker:\n```bash\ndocker run -p 9400:9200 -p 9600:9300 docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.3\n```\n\n2.a Run the test with `RestClient`:\n```bash\nmvn -nsu test -Dnuxeo.test.elasticsearch.addressList=http://localhost:9400\n```\n\n2.b Or run the test with `TransportClient`:\n```bash\nmvn -nsu test -Dnuxeo.test.elasticsearch.client=TransportClient -Dnuxeo.test.elasticsearch.clusterName=docker-cluster -Dnuxeo.test.elasticsearch.addressList=localhost:9600\n```\n\n## Links\n\n- Administration: http://doc.nuxeo.com/x/UBY5AQ\n- Configuring mapping: http://doc.nuxeo.com/x/WxI5AQ\n- Overview: http://doc.nuxeo.com/x/iYElAQ\n- [Open jira tikets](https://jira.nuxeo.com/issues/?jql=project%20%3D%20NXP%20AND%20component%20%3D%20Elasticsearch%20AND%20Status%20!%3D%20%22Resolved%22%20ORDER%20BY%20updated%20DESC%2C%20priority%20DESC%2C%20created%20ASC)\n",
            "digest": "39fe49f5b0c4b24c62cb008ba470a7c5",
            "encoding": "UTF-8",
            "length": 1513,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "2021.24"
      },
      "bundleId": "org.nuxeo.elasticsearch.core",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.core.listener/Contributions/org.nuxeo.elasticsearch.core.listener--listener",
              "id": "org.nuxeo.elasticsearch.core.listener--listener",
              "registrationOrder": 14,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"false\" class=\"org.nuxeo.elasticsearch.listener.ElasticSearchInlineListener\" enabled=\"true\" name=\"elasticSearchInlineListener\" postCommit=\"false\" priority=\"500\">\n      <event>beforeDocumentModification</event>\n      <event>documentCreated</event>\n      <event>documentImported</event>\n      <event>documentCreatedByCopy</event>\n      <event>documentMoved</event>\n      <event>lifecycle_transition_event</event>\n      <event>documentRestored</event>\n      <event>documentSecurityUpdated</event>\n      <event>documentRemoved</event>\n      <event>sessionSaved</event>\n      <event>aboutToCheckIn</event>\n      <event>documentCheckedOut</event>\n      <event>documentCheckedIn</event>\n      <event>binaryTextUpdated</event>\n      <event>documentTagUpdated</event>\n      <event>documentProxyUpdated</event>\n      <event>childrenOrderChanged</event>\n      <event>documentTrashed</event>\n      <event>documentUntrashed</event>\n      <event>afterMakeRecord</event>\n      <event>afterSetRetention</event>\n      <event>afterExtendRetention</event>\n      <event>afterSetLegalHold</event>\n      <event>afterRemoveLegalHold</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.core.listener",
          "name": "org.nuxeo.elasticsearch.core.listener",
          "requirements": [],
          "resolutionOrder": 184,
          "services": [],
          "startOrder": 653,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.core.listener\">\n\n  <extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener name=\"elasticSearchInlineListener\" async=\"false\"\n      class=\"org.nuxeo.elasticsearch.listener.ElasticSearchInlineListener\" enabled=\"${elasticsearch.enabled:=true}\"\n      postCommit=\"false\" priority=\"500\">\n      <event>beforeDocumentModification</event>\n      <event>documentCreated</event>\n      <event>documentImported</event>\n      <event>documentCreatedByCopy</event>\n      <event>documentMoved</event>\n      <event>lifecycle_transition_event</event>\n      <event>documentRestored</event>\n      <event>documentSecurityUpdated</event>\n      <event>documentRemoved</event>\n      <event>sessionSaved</event>\n      <event>aboutToCheckIn</event>\n      <event>documentCheckedOut</event>\n      <event>documentCheckedIn</event>\n      <event>binaryTextUpdated</event>\n      <event>documentTagUpdated</event>\n      <event>documentProxyUpdated</event>\n      <event>childrenOrderChanged</event>\n      <event>documentTrashed</event>\n      <event>documentUntrashed</event>\n      <event>afterMakeRecord</event>\n      <event>afterSetRetention</event>\n      <event>afterExtendRetention</event>\n      <event>afterSetLegalHold</event>\n      <event>afterRemoveLegalHold</event>\n    </listener>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/listener-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.work.service--queues",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.work.config/Contributions/org.nuxeo.elasticsearch.work.config--queues",
              "id": "org.nuxeo.elasticsearch.work.config--queues",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.work.service",
                "name": "org.nuxeo.ecm.core.work.service",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"elasticSearchIndexing\">\n      <name>ElasticSearch Indexing</name>\n      <maxThreads>4</maxThreads>\n      <!-- <usePriority>true</usePriority> -->\n      <category>elasticSearchIndexing</category>\n      <clearCompletedAfterSeconds>90</clearCompletedAfterSeconds>\n    </queue>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.work.config",
          "name": "org.nuxeo.elasticsearch.work.config",
          "requirements": [],
          "resolutionOrder": 185,
          "services": [],
          "startOrder": 664,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.work.config\" version=\"1.0\">\n\n  <extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"elasticSearchIndexing\">\n      <name>ElasticSearch Indexing</name>\n      <maxThreads>${elasticsearch.indexing.maxThreads:=4}</maxThreads>\n      <!-- <usePriority>true</usePriority> -->\n      <category>elasticSearchIndexing</category>\n      <clearCompletedAfterSeconds>${elasticsearch.indexing.clearCompletedAfterSeconds:=90}</clearCompletedAfterSeconds>\n    </queue>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/workmanager-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchDocWriter",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent.contrib/Contributions/org.nuxeo.elasticsearch.ElasticSearchComponent.contrib--elasticSearchDocWriter",
              "id": "org.nuxeo.elasticsearch.ElasticSearchComponent.contrib--elasticSearchDocWriter",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.elasticsearch.ElasticSearchComponent",
                "name": "org.nuxeo.elasticsearch.ElasticSearchComponent",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"elasticSearchDocWriter\" target=\"org.nuxeo.elasticsearch.ElasticSearchComponent\">\n    <writer class=\"org.nuxeo.elasticsearch.io.JsonESDocumentWriter\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent.contrib",
          "name": "org.nuxeo.elasticsearch.ElasticSearchComponent.contrib",
          "requirements": [],
          "resolutionOrder": 186,
          "services": [],
          "startOrder": 650,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.ElasticSearchComponent.contrib\" version=\"1.0\">\n\n  <extension point=\"elasticSearchDocWriter\" target=\"org.nuxeo.elasticsearch.ElasticSearchComponent\">\n    <writer class=\"org.nuxeo.elasticsearch.io.JsonESDocumentWriter\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/elasticsearch-service-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.marshallers/Contributions/org.nuxeo.elasticsearch.marshallers--marshallers",
              "id": "org.nuxeo.elasticsearch.marshallers--marshallers",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.elasticsearch.io.marshallers.json.AggregateJsonWriter\" enable=\"true\"/>\n    <register class=\"org.nuxeo.elasticsearch.io.HighlightJsonEnricher\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.marshallers",
          "name": "org.nuxeo.elasticsearch.marshallers",
          "requirements": [],
          "resolutionOrder": 187,
          "services": [],
          "startOrder": 660,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.marshallers\" version=\"1.0.0\">\n  <extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.elasticsearch.io.marshallers.json.AggregateJsonWriter\" enable=\"true\" />\n    <register class=\"org.nuxeo.elasticsearch.io.HighlightJsonEnricher\" enable=\"true\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scroll.service--scroll",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.scroll.contrib/Contributions/org.nuxeo.elasticsearch.scroll.contrib--scroll",
              "id": "org.nuxeo.elasticsearch.scroll.contrib--scroll",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scroll.service",
                "name": "org.nuxeo.ecm.core.scroll.service",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll class=\"org.nuxeo.elasticsearch.scroll.ElasticSearchScroll\" name=\"elastic\" type=\"document\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.scroll.contrib",
          "name": "org.nuxeo.elasticsearch.scroll.contrib",
          "requirements": [
            "org.nuxeo.ecm.core.scroll.service"
          ],
          "resolutionOrder": 188,
          "services": [],
          "startOrder": 661,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.scroll.contrib\" version=\"1.0\">\n  <require>org.nuxeo.ecm.core.scroll.service</require>\n  <extension point=\"scroll\" target=\"org.nuxeo.ecm.core.scroll.service\">\n    <scroll type=\"document\" name=\"elastic\" class=\"org.nuxeo.elasticsearch.scroll.ElasticSearchScroll\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/scroll-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.elasticsearch.ElasticSearchComponent",
          "declaredStartOrder": 50,
          "documentationHtml": "",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "descriptors": [
                "org.nuxeo.elasticsearch.config.ElasticSearchEmbeddedServerConfig"
              ],
              "documentation": "\n      Extension point to setup an embedded Elasticsearch instance.\n\n      It creates a local node using the same JVM as Nuxeo.\n\n      This is a test configuration and must NOT be used in production,\n      it is limited to one shard and no replica.\n\n      <code>\n    <elasticSearchLocal clusterName=\"MyCluster\" httpEnabled=\"true\"\n        indexStoreType=\"mmapfs\" nodeName=\"MyNuxeo\" pathData=\"/var/lib/nuxeo/elasticsearch/\"/>\n</code>\n\n\n      Please refer to the Elasticsearch node configuration\n\n      clusterName is the cluster.name\n\n      nodeName is the node.name, default to nuxeoNode\n\n      pathData is the path.data\n\n      indexStoreType is the index.store_type\n\n      httpEnabled is the node.enable_http\n\n    \n",
              "documentationHtml": "<p>\nExtension point to setup an embedded Elasticsearch instance.\n</p><p>\nIt creates a local node using the same JVM as Nuxeo.\n</p><p>\nThis is a test configuration and must NOT be used in production,\nit is limited to one shard and no replica.\n</p><p>\n</p><pre><code>    &lt;elasticSearchLocal clusterName&#61;&#34;MyCluster&#34; httpEnabled&#61;&#34;true&#34;\n        indexStoreType&#61;&#34;mmapfs&#34; nodeName&#61;&#34;MyNuxeo&#34; pathData&#61;&#34;/var/lib/nuxeo/elasticsearch/&#34;/&gt;\n</code></pre><p>\nPlease refer to the Elasticsearch node configuration\n</p><p>\nclusterName is the cluster.name\n</p><p>\nnodeName is the node.name, default to nuxeoNode\n</p><p>\npathData is the path.data\n</p><p>\nindexStoreType is the index.store_type\n</p><p>\nhttpEnabled is the node.enable_http\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/ExtensionPoints/org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchEmbeddedServer",
              "id": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchEmbeddedServer",
              "label": "elasticSearchEmbeddedServer (org.nuxeo.elasticsearch.ElasticSearchComponent)",
              "name": "elasticSearchEmbeddedServer",
              "version": "2021.24.3"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "descriptors": [
                "org.nuxeo.elasticsearch.config.ElasticSearchClientConfig"
              ],
              "documentation": "\n      Extension point to define how to access the Elasticsearch cluster.\n\n      For the TransportClient protocol:\n      <code>\n    <elasticSeachClient class=\"org.nuxeo.elasticsearch.client.ESTransportClientFactory\">\n        <option name=\"addressList\">localhost:9300</option>\n        <option name=\"clusterName\">elasticsearch</option>\n        <option name=\"clientTransportSniff\">false</option>\n        <option name=\"clientTransportIgnoreClusterName\">false</option>\n        <option name=\"clientTransportPingTimeout\">5s</option>\n        <option name=\"clientTransportNodesSamplerInterval\">5s</option>\n    </elasticSeachClient>\n</code>\n\n\n      For a Rest client:\n      <code>\n    <elasticSeachClient class=\"org.nuxeo.elasticsearch.client.ESRestClientFactory\">\n        <option name=\"addressList\">localhost:9200</option>\n    </elasticSeachClient>\n</code>\n",
              "documentationHtml": "<p>\nExtension point to define how to access the Elasticsearch cluster.\n</p><p>\nFor the TransportClient protocol:\n</p><p></p><pre><code>    &lt;elasticSeachClient class&#61;&#34;org.nuxeo.elasticsearch.client.ESTransportClientFactory&#34;&gt;\n        &lt;option name&#61;&#34;addressList&#34;&gt;localhost:9300&lt;/option&gt;\n        &lt;option name&#61;&#34;clusterName&#34;&gt;elasticsearch&lt;/option&gt;\n        &lt;option name&#61;&#34;clientTransportSniff&#34;&gt;false&lt;/option&gt;\n        &lt;option name&#61;&#34;clientTransportIgnoreClusterName&#34;&gt;false&lt;/option&gt;\n        &lt;option name&#61;&#34;clientTransportPingTimeout&#34;&gt;5s&lt;/option&gt;\n        &lt;option name&#61;&#34;clientTransportNodesSamplerInterval&#34;&gt;5s&lt;/option&gt;\n    &lt;/elasticSeachClient&gt;\n</code></pre><p>\nFor a Rest client:\n</p><p></p><pre><code>    &lt;elasticSeachClient class&#61;&#34;org.nuxeo.elasticsearch.client.ESRestClientFactory&#34;&gt;\n        &lt;option name&#61;&#34;addressList&#34;&gt;localhost:9200&lt;/option&gt;\n    &lt;/elasticSeachClient&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/ExtensionPoints/org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchClient",
              "id": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchClient",
              "label": "elasticSearchClient (org.nuxeo.elasticsearch.ElasticSearchComponent)",
              "name": "elasticSearchClient",
              "version": "2021.24.3"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "descriptors": [
                "org.nuxeo.elasticsearch.config.ElasticSearchIndexConfig"
              ],
              "documentation": "\n      Extension point used to setup an Elasticsearch index.\n\n      The one used to index Nuxeo documents must be of type \"doc\".\n\n      <code>\n    <elasticSearchIndex create=\"true\" name=\"nuxeo\" type=\"doc\">\n        <settings/>\n        <mapping/>\n        <fetchFromSources>\n            <include>ecm:*</include>\n            <include>dc:*</include>\n            <exclude>ecm:binaryFulltext</exclude>\n        </fetchFromSources>\n    </elasticSearchIndex>\n</code>\n\n\n      @Since 5.9.3\n      name is the Elasticsearch index name.\n\n      type is the Elasticsearch type that hold a mapping, \"doc\" is the mapping\n      for Nuxeo documents\n\n      create can be set to false if you don't want Nuxeo to initialize the index\n      and mapping.\n\n      settings the Elasticsearch settings\n      @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html\n\n      mapping the Elasticsearch mapping for the type\n      @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html\n\n      @Since 5.9.5\n      fetchFromSources, include a list of field name pattern that will be included\n      when fetching document from Elasticsearch (@see NxQueryBuilder.fetchFromElasticsearch)\n      use the exclude list to prevent returning fulltext or long fields.\n\n    \n",
              "documentationHtml": "<p>\nExtension point used to setup an Elasticsearch index.\n</p><p>\nThe one used to index Nuxeo documents must be of type &#34;doc&#34;.\n</p><p>\n</p><pre><code>    &lt;elasticSearchIndex create&#61;&#34;true&#34; name&#61;&#34;nuxeo&#34; type&#61;&#34;doc&#34;&gt;\n        &lt;settings/&gt;\n        &lt;mapping/&gt;\n        &lt;fetchFromSources&gt;\n            &lt;include&gt;ecm:*&lt;/include&gt;\n            &lt;include&gt;dc:*&lt;/include&gt;\n            &lt;exclude&gt;ecm:binaryFulltext&lt;/exclude&gt;\n        &lt;/fetchFromSources&gt;\n    &lt;/elasticSearchIndex&gt;\n</code></pre><p>\n&#64;Since 5.9.3\nname is the Elasticsearch index name.\n</p><p>\ntype is the Elasticsearch type that hold a mapping, &#34;doc&#34; is the mapping\nfor Nuxeo documents\n</p><p>\ncreate can be set to false if you don&#39;t want Nuxeo to initialize the index\nand mapping.\n</p><p>\nsettings the Elasticsearch settings\n&#64;see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html\n</p><p>\nmapping the Elasticsearch mapping for the type\n&#64;see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html\n</p><p>\n&#64;Since 5.9.5\nfetchFromSources, include a list of field name pattern that will be included\nwhen fetching document from Elasticsearch (&#64;see NxQueryBuilder.fetchFromElasticsearch)\nuse the exclude list to prevent returning fulltext or long fields.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/ExtensionPoints/org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchIndex",
              "id": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchIndex",
              "label": "elasticSearchIndex (org.nuxeo.elasticsearch.ElasticSearchComponent)",
              "name": "elasticSearchIndex",
              "version": "2021.24.3"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "descriptors": [
                "org.nuxeo.elasticsearch.config.ElasticSearchDocWriterDescriptor"
              ],
              "documentation": "\n      Extension point used to setup the writer used when a document is indexed.\n      Must extend the JsonESDocumentWriter class.\n\n      <code>\n    <writer class=\"org.nuxeo.elasticsearch.io.JsonESDocumentWriter\"/>\n</code>\n",
              "documentationHtml": "<p>\nExtension point used to setup the writer used when a document is indexed.\nMust extend the JsonESDocumentWriter class.\n</p><p>\n</p><pre><code>    &lt;writer class&#61;&#34;org.nuxeo.elasticsearch.io.JsonESDocumentWriter&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/ExtensionPoints/org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchDocWriter",
              "id": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchDocWriter",
              "label": "elasticSearchDocWriter (org.nuxeo.elasticsearch.ElasticSearchComponent)",
              "name": "elasticSearchDocWriter",
              "version": "2021.24.3"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "descriptors": [
                "org.nuxeo.elasticsearch.config.ESHintQueryBuilderDescriptor"
              ],
              "documentation": "\n      Extension point used to define the NXQL hints which enables the use of Elasticsearch operators.\n      Must implement the ESHintQueryBuilder interface.\n\n      @see https://doc.nuxeo.com/nxdoc/nxql/#elasticsearch-nxql-hints to have the available ES hints.\n\n    \n",
              "documentationHtml": "<p>\nExtension point used to define the NXQL hints which enables the use of Elasticsearch operators.\nMust implement the ESHintQueryBuilder interface.\n</p><p>\n&#64;see https://doc.nuxeo.com/nxdoc/nxql/#elasticsearch-nxql-hints to have the available ES hints.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/ExtensionPoints/org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchHints",
              "id": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchHints",
              "label": "elasticSearchHints (org.nuxeo.elasticsearch.ElasticSearchComponent)",
              "name": "elasticSearchHints",
              "version": "2021.24.3"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent",
          "name": "org.nuxeo.elasticsearch.ElasticSearchComponent",
          "requirements": [
            "org.nuxeo.ecm.core.repository.RepositoryServiceComponent"
          ],
          "resolutionOrder": 759,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/Services/org.nuxeo.elasticsearch.api.ElasticSearchService",
              "id": "org.nuxeo.elasticsearch.api.ElasticSearchService",
              "overriden": false,
              "version": "2021.24.3"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/Services/org.nuxeo.elasticsearch.api.ElasticSearchIndexing",
              "id": "org.nuxeo.elasticsearch.api.ElasticSearchIndexing",
              "overriden": false,
              "version": "2021.24.3"
            },
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.elasticsearch.ElasticSearchComponent",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.ElasticSearchComponent/Services/org.nuxeo.elasticsearch.api.ElasticSearchAdmin",
              "id": "org.nuxeo.elasticsearch.api.ElasticSearchAdmin",
              "overriden": false,
              "version": "2021.24.3"
            }
          ],
          "startOrder": 738,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.ElasticSearchComponent\" version=\"1.0\">\n  <require>org.nuxeo.ecm.core.repository.RepositoryServiceComponent</require>\n  <implementation class=\"org.nuxeo.elasticsearch.ElasticSearchComponent\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.elasticsearch.api.ElasticSearchService\" />\n    <provide interface=\"org.nuxeo.elasticsearch.api.ElasticSearchIndexing\" />\n    <provide interface=\"org.nuxeo.elasticsearch.api.ElasticSearchAdmin\" />\n  </service>\n\n  <extension-point name=\"elasticSearchEmbeddedServer\">\n    <documentation>\n      Extension point to setup an embedded Elasticsearch instance.\n\n      It creates a local node using the same JVM as Nuxeo.\n\n      This is a test configuration and must NOT be used in production,\n      it is limited to one shard and no replica.\n\n      <code>\n        <elasticSearchLocal clusterName=\"MyCluster\" httpEnabled=\"true\" indexStoreType=\"mmapfs\" nodeName=\"MyNuxeo\"\n                            pathData=\"/var/lib/nuxeo/elasticsearch/\" />\n      </code>\n\n      Please refer to the Elasticsearch node configuration\n\n      clusterName is the cluster.name\n\n      nodeName is the node.name, default to nuxeoNode\n\n      pathData is the path.data\n\n      indexStoreType is the index.store_type\n\n      httpEnabled is the node.enable_http\n\n    </documentation>\n\n    <object class=\"org.nuxeo.elasticsearch.config.ElasticSearchEmbeddedServerConfig\" />\n  </extension-point>\n\n\n  <extension-point name=\"elasticSearchClient\">\n    <documentation>\n      Extension point to define how to access the Elasticsearch cluster.\n\n      For the TransportClient protocol:\n      <code>\n        <elasticSeachClient class=\"org.nuxeo.elasticsearch.client.ESTransportClientFactory\">\n          <option name=\"addressList\">localhost:9300</option>\n          <option name=\"clusterName\">elasticsearch</option>\n          <option name=\"clientTransportSniff\">false</option>\n          <option name=\"clientTransportIgnoreClusterName\">false</option>\n          <option name=\"clientTransportPingTimeout\">5s</option>\n          <option name=\"clientTransportNodesSamplerInterval\">5s</option>\n        </elasticSeachClient>\n      </code>\n\n      For a Rest client:\n      <code>\n        <elasticSeachClient class=\"org.nuxeo.elasticsearch.client.ESRestClientFactory\">\n          <option name=\"addressList\">localhost:9200</option>\n        </elasticSeachClient>\n      </code>\n\n    </documentation>\n    <object class=\"org.nuxeo.elasticsearch.config.ElasticSearchClientConfig\" />\n  </extension-point>\n\n  <extension-point name=\"elasticSearchIndex\">\n    <documentation>\n      Extension point used to setup an Elasticsearch index.\n\n      The one used to index Nuxeo documents must be of type \"doc\".\n\n      <code>\n        <elasticSearchIndex name=\"nuxeo\" create=\"true\" type=\"doc\">\n          <settings></settings>\n          <mapping></mapping>\n          <fetchFromSources>\n            <include>ecm:*</include>\n            <include>dc:*</include>\n            <exclude>ecm:binaryFulltext</exclude>\n          </fetchFromSources>\n        </elasticSearchIndex>\n      </code>\n\n      @Since 5.9.3\n      name is the Elasticsearch index name.\n\n      type is the Elasticsearch type that hold a mapping, \"doc\" is the mapping\n      for Nuxeo documents\n\n      create can be set to false if you don't want Nuxeo to initialize the index\n      and mapping.\n\n      settings the Elasticsearch settings\n      @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules.html\n\n      mapping the Elasticsearch mapping for the type\n      @see http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping.html\n\n      @Since 5.9.5\n      fetchFromSources, include a list of field name pattern that will be included\n      when fetching document from Elasticsearch (@see NxQueryBuilder.fetchFromElasticsearch)\n      use the exclude list to prevent returning fulltext or long fields.\n\n    </documentation>\n\n    <object class=\"org.nuxeo.elasticsearch.config.ElasticSearchIndexConfig\" />\n  </extension-point>\n\n  <extension-point name=\"elasticSearchDocWriter\">\n    <documentation>\n      Extension point used to setup the writer used when a document is indexed.\n      Must extend the JsonESDocumentWriter class.\n\n      <code>\n        <writer class=\"org.nuxeo.elasticsearch.io.JsonESDocumentWriter\" />\n      </code>\n\n    </documentation>\n    <object class=\"org.nuxeo.elasticsearch.config.ElasticSearchDocWriterDescriptor\" />\n  </extension-point>\n\n\n  <extension-point name=\"elasticSearchHints\">\n    <documentation>\n      Extension point used to define the NXQL hints which enables the use of Elasticsearch operators.\n      Must implement the ESHintQueryBuilder interface.\n\n      @see https://doc.nuxeo.com/nxdoc/nxql/#elasticsearch-nxql-hints to have the available ES hints.\n\n    </documentation>\n    <object class=\"org.nuxeo.elasticsearch.config.ESHintQueryBuilderDescriptor\" />\n  </extension-point>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/elasticsearch-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.management.CoreManagementComponent--probes",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.managment.contrib/Contributions/org.nuxeo.elasticsearch.managment.contrib--probes",
              "id": "org.nuxeo.elasticsearch.managment.contrib--probes",
              "registrationOrder": 3,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.management.CoreManagementComponent",
                "name": "org.nuxeo.ecm.core.management.CoreManagementComponent",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"probes\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n    <probe class=\"org.nuxeo.elasticsearch.status.ElasticSearchStatusProbe\" name=\"elasticSearchStatus\">\n      <label>Elastic Search probe</label>\n    </probe>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.management.CoreManagementComponent--healthCheck",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.managment.contrib/Contributions/org.nuxeo.elasticsearch.managment.contrib--healthCheck",
              "id": "org.nuxeo.elasticsearch.managment.contrib--healthCheck",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.management.CoreManagementComponent",
                "name": "org.nuxeo.ecm.core.management.CoreManagementComponent",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"healthCheck\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n    <probe enabled=\"true\" name=\"elasticSearchStatus\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.managment.contrib",
          "name": "org.nuxeo.elasticsearch.managment.contrib",
          "requirements": [
            "org.nuxeo.elasticsearch.ElasticSearchComponent"
          ],
          "resolutionOrder": 761,
          "services": [],
          "startOrder": 659,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.managment.contrib\">\n  <require>org.nuxeo.elasticsearch.ElasticSearchComponent</require>\n\n  <extension point=\"probes\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n    <probe name=\"elasticSearchStatus\" class=\"org.nuxeo.elasticsearch.status.ElasticSearchStatusProbe\">\n      <label>Elastic Search probe</label>\n    </probe>\n  </extension>\n\n  <extension point=\"healthCheck\" target=\"org.nuxeo.ecm.core.management.CoreManagementComponent\">\n    <probe name=\"elasticSearchStatus\" enabled=\"${elasticsearch.enabled:=true}\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/elasticsearch-managment-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.elasticsearch.ElasticSearchComponent--elasticSearchHints",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.hint.contrib/Contributions/org.nuxeo.elasticsearch.hint.contrib--elasticSearchHints",
              "id": "org.nuxeo.elasticsearch.hint.contrib--elasticSearchHints",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.elasticsearch.ElasticSearchComponent",
                "name": "org.nuxeo.elasticsearch.ElasticSearchComponent",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"elasticSearchHints\" target=\"org.nuxeo.elasticsearch.ElasticSearchComponent\">\n    <hint class=\"org.nuxeo.elasticsearch.hint.MatchESHintQueryBuilder\" name=\"match\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.MatchPhraseESHintQueryBuilder\" name=\"match_phrase\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.MatchPhrasePrefixESHintQueryBuilder\" name=\"match_phrase_prefix\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.MultiMatchESHintQueryBuilder\" name=\"multi_match\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.RegexESHintQueryBuilder\" name=\"regex\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.FuzzyESHintQueryBuilder\" name=\"fuzzy\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.WildcardESHintQueryBuilder\" name=\"wildcard\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.CommonESHintQueryBuilder\" name=\"common\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.QueryStringESHintQueryBuilder\" name=\"query_string\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.SimpleQueryStringESHintQueryBuilder\" name=\"simple_query_string\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.MoreLikeThisESHintQueryBuilder\" name=\"more_like_this\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.GeoBoundingBoxESHintQueryBuilder\" name=\"geo_bounding_box\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.GeoDistanceESHintQueryBuilder\" name=\"geo_distance\"/>\n    <hint class=\"org.nuxeo.elasticsearch.hint.GeoShapeESHintQueryBuilder\" name=\"geo_shape\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.hint.contrib",
          "name": "org.nuxeo.elasticsearch.hint.contrib",
          "requirements": [
            "org.nuxeo.elasticsearch.ElasticSearchComponent"
          ],
          "resolutionOrder": 764,
          "services": [],
          "startOrder": 655,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.hint.contrib\">\n  <require>org.nuxeo.elasticsearch.ElasticSearchComponent</require>\n\n  <extension point=\"elasticSearchHints\" target=\"org.nuxeo.elasticsearch.ElasticSearchComponent\">\n    <hint name=\"match\" class=\"org.nuxeo.elasticsearch.hint.MatchESHintQueryBuilder\" />\n    <hint name=\"match_phrase\" class=\"org.nuxeo.elasticsearch.hint.MatchPhraseESHintQueryBuilder\" />\n    <hint name=\"match_phrase_prefix\" class=\"org.nuxeo.elasticsearch.hint.MatchPhrasePrefixESHintQueryBuilder\" />\n    <hint name=\"multi_match\" class=\"org.nuxeo.elasticsearch.hint.MultiMatchESHintQueryBuilder\" />\n    <hint name=\"regex\" class=\"org.nuxeo.elasticsearch.hint.RegexESHintQueryBuilder\" />\n    <hint name=\"fuzzy\" class=\"org.nuxeo.elasticsearch.hint.FuzzyESHintQueryBuilder\" />\n    <hint name=\"wildcard\" class=\"org.nuxeo.elasticsearch.hint.WildcardESHintQueryBuilder\" />\n    <hint name=\"common\" class=\"org.nuxeo.elasticsearch.hint.CommonESHintQueryBuilder\" />\n    <hint name=\"query_string\" class=\"org.nuxeo.elasticsearch.hint.QueryStringESHintQueryBuilder\" />\n    <hint name=\"simple_query_string\" class=\"org.nuxeo.elasticsearch.hint.SimpleQueryStringESHintQueryBuilder\" />\n    <hint name=\"more_like_this\" class=\"org.nuxeo.elasticsearch.hint.MoreLikeThisESHintQueryBuilder\" />\n    <hint name=\"geo_bounding_box\" class=\"org.nuxeo.elasticsearch.hint.GeoBoundingBoxESHintQueryBuilder\" />\n    <hint name=\"geo_distance\" class=\"org.nuxeo.elasticsearch.hint.GeoDistanceESHintQueryBuilder\" />\n    <hint name=\"geo_shape\" class=\"org.nuxeo.elasticsearch.hint.GeoShapeESHintQueryBuilder\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/elasticsearch-hints-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.bulk--actions",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.core.bulk.contrib/Contributions/org.nuxeo.elasticsearch.core.bulk.contrib--actions",
              "id": "org.nuxeo.elasticsearch.core.bulk.contrib--actions",
              "registrationOrder": 8,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.bulk",
                "name": "org.nuxeo.ecm.core.bulk",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.core.bulk\">\n    <action batchSize=\"25\" bucketSize=\"1000\" enabled=\"true\" inputStream=\"bulk/index\" name=\"index\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.stream.service--streamProcessor",
              "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.core.bulk.contrib/Contributions/org.nuxeo.elasticsearch.core.bulk.contrib--streamProcessor",
              "id": "org.nuxeo.elasticsearch.core.bulk.contrib--streamProcessor",
              "registrationOrder": 11,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.stream.service",
                "name": "org.nuxeo.runtime.stream.service",
                "type": "service"
              },
              "version": "2021.24.3",
              "xml": "<extension point=\"streamProcessor\" target=\"org.nuxeo.runtime.stream.service\">\n    <streamProcessor class=\"org.nuxeo.elasticsearch.bulk.IndexAction\" defaultConcurrency=\"2\" defaultPartitions=\"4\" enabled=\"true\" name=\"indexAction\">\n      <policy continueOnFailure=\"false\" delay=\"1s\" maxDelay=\"60s\" maxRetries=\"20\" name=\"default\"/>\n      <!-- fetch content and build indexing requests -->\n      <computation concurrency=\"4\" name=\"bulk/index\"/>\n      <stream name=\"bulk/index\" partitions=\"12\"/>\n      <!-- submit requests to elastic -->\n      <computation concurrency=\"2\" name=\"bulk/bulkIndex\"/>\n      <stream name=\"bulk/bulkIndex\" partitions=\"8\">\n        <filter class=\"org.nuxeo.ecm.core.transientstore.computation.TransientStoreOverflowRecordFilter\" name=\"overflow\">\n          <option name=\"storeName\">default</option>\n          <option name=\"prefix\">index</option>\n          <option name=\"thresholdSize\">990000</option>\n        </filter>\n      </stream>\n      <computation concurrency=\"1\" name=\"bulk/indexCompletion\"/>\n      <!-- optimal size of the elasticsearch bulk request -->\n      <option name=\"esBulkSizeBytes\">5242880</option>\n      <!-- max number of actions in the elasticsearch bulk request -->\n      <option name=\"esBulkActions\">1000</option>\n      <!-- flush elasticsearch bulk request interval -->\n      <option name=\"flushIntervalSeconds\">5</option>\n    </streamProcessor>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core/org.nuxeo.elasticsearch.core.bulk.contrib",
          "name": "org.nuxeo.elasticsearch.core.bulk.contrib",
          "requirements": [
            "org.nuxeo.ecm.core.bulk.config"
          ],
          "resolutionOrder": 802,
          "services": [],
          "startOrder": 652,
          "version": "2021.24.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.elasticsearch.core.bulk.contrib\" version=\"1.0.0\">\n\n  <require>org.nuxeo.ecm.core.bulk.config</require>\n\n  <extension target=\"org.nuxeo.ecm.core.bulk\" point=\"actions\">\n    <action name=\"index\" inputStream=\"bulk/index\" bucketSize=\"1000\" batchSize=\"25\"\n      enabled=\"${elasticsearch.enabled:=true}\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.runtime.stream.service\" point=\"streamProcessor\">\n    <streamProcessor name=\"indexAction\" class=\"org.nuxeo.elasticsearch.bulk.IndexAction\"\n      defaultConcurrency=\"2\" defaultPartitions=\"4\" enabled=\"${elasticsearch.enabled:=true}\">\n      <policy name=\"default\" maxRetries=\"20\" delay=\"1s\" maxDelay=\"60s\" continueOnFailure=\"false\" />\n      <!-- fetch content and build indexing requests -->\n      <computation name=\"bulk/index\" concurrency=\"${nuxeo.bulk.action.reindex.index.concurrency:=2}\" />\n      <stream name=\"bulk/index\" partitions=\"${nuxeo.bulk.action.reindex.index.partitions:=4}\" />\n      <!-- submit requests to elastic -->\n      <computation name=\"bulk/bulkIndex\" concurrency=\"${nuxeo.bulk.action.reindex.bulkIndex.concurrency:=2}\" />\n      <stream name=\"bulk/bulkIndex\" partitions=\"${nuxeo.bulk.action.reindex.bulkIndex.partitions:=4}\">\n        <filter name=\"overflow\" class=\"org.nuxeo.ecm.core.transientstore.computation.TransientStoreOverflowRecordFilter\">\n          <option name=\"storeName\">default</option>\n          <option name=\"prefix\">index</option>\n          <option name=\"thresholdSize\">990000</option>\n        </filter>\n      </stream>\n      <computation name=\"bulk/indexCompletion\" concurrency=\"1\" />\n      <!-- optimal size of the elasticsearch bulk request -->\n      <option name=\"esBulkSizeBytes\">5242880</option>\n      <!-- max number of actions in the elasticsearch bulk request -->\n      <option name=\"esBulkActions\">1000</option>\n      <!-- flush elasticsearch bulk request interval -->\n      <option name=\"flushIntervalSeconds\">5</option>\n    </streamProcessor>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/bulk-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-elasticsearch-core-2021.24.3.jar",
      "groupId": "org.nuxeo.elasticsearch",
      "hierarchyPath": "/grp:org.nuxeo.elasticsearch/org.nuxeo.elasticsearch.core",
      "id": "org.nuxeo.elasticsearch.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.16\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: ElasticSearch core service integration\r\nBundle-SymbolicName: org.nuxeo.elasticsearch.core;singleton:=true\r\nNuxeo-Component: OSGI-INF/elasticsearch-service.xml,OSGI-INF/listener-\r\n contrib.xml,OSGI-INF/workmanager-contrib.xml,OSGI-INF/elasticsearch-s\r\n ervice-contrib.xml,OSGI-INF/marshallers-contrib.xml,OSGI-INF/elastics\r\n earch-managment-contrib.xml,OSGI-INF/bulk-contrib.xml,OSGI-INF/elasti\r\n csearch-hints-contrib.xml,OSGI-INF/scroll-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 802,
      "minResolutionOrder": 184,
      "packages": [],
      "parentReadme": {
        "blobProviderId": "default",
        "content": "nuxeo-elasticsearch\n===================\n\n## About\n\nThis project aims at providing Nuxeo bundles to integrate\nElasticsearch with the Nuxeo Platform.\n\nThe idea is to index/query Nuxeo Documents to/from Elasticsearch.\n\n## Building\n\nTo build and run the tests, simply start the Maven build:\n\n    mvn clean install\n\n## Running tests\n\n### Using the embedded Elasticsearch\n\nWith the default `RestClient`:\n```bash\nmvn -nsu test\n# -Dnuxeo.test.elasticsearch.client=RestClient is set by default\n```\n\nOr with the `TransportClient`\n\n```bash\nmvn -nsu test -Dnuxeo.test.elasticsearch.client=TransportClient\n```\n\n### Using an external Elasticsearch\n\n1. Start an Elasticsearch using docker:\n```bash\ndocker run -p 9400:9200 -p 9600:9300 docker.elastic.co/elasticsearch/elasticsearch-oss:6.5.3\n```\n\n2.a Run the test with `RestClient`:\n```bash\nmvn -nsu test -Dnuxeo.test.elasticsearch.addressList=http://localhost:9400\n```\n\n2.b Or run the test with `TransportClient`:\n```bash\nmvn -nsu test -Dnuxeo.test.elasticsearch.client=TransportClient -Dnuxeo.test.elasticsearch.clusterName=docker-cluster -Dnuxeo.test.elasticsearch.addressList=localhost:9600\n```\n\n## Links\n\n- Administration: http://doc.nuxeo.com/x/UBY5AQ\n- Configuring mapping: http://doc.nuxeo.com/x/WxI5AQ\n- Overview: http://doc.nuxeo.com/x/iYElAQ\n- [Open jira tikets](https://jira.nuxeo.com/issues/?jql=project%20%3D%20NXP%20AND%20component%20%3D%20Elasticsearch%20AND%20Status%20!%3D%20%22Resolved%22%20ORDER%20BY%20updated%20DESC%2C%20priority%20DESC%2C%20created%20ASC)\n",
        "digest": "39fe49f5b0c4b24c62cb008ba470a7c5",
        "encoding": "UTF-8",
        "length": 1513,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [],
      "version": "2021.24.3"
    }
  ],
  "creationDate": 1664794327924,
  "key": "Nuxeo Platform-2021.24",
  "name": "Nuxeo Platform",
  "operations": [],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1664794327924,
  "version": "2021.24"
}